package class_object;

// 访问修饰符对类的影响（只有public和默认两种）
public class AccessModifiersDemo {
    // 1. private：仅本类可见
    private int privateVar = 10;

    private void privateMethod() {
        System.out.println("private方法：" + privateVar);
    }

    // 2. 默认（无修饰符）：本类、同包可见
    int defaultVar = 20;

    void defaultMethod() {
        System.out.println("default方法：" + defaultVar);
        // 本类中可以访问所有权限的成员
        privateMethod();
        protectedMethod();
        publicMethod();
    }

    // 3. protected：本类、同包、子类可见
    protected int protectedVar = 30;

    protected void protectedMethod() {
        System.out.println("protected方法：" + protectedVar);
    }

    // 4. public：任何地方可见
    public int publicVar = 40;

    public void publicMethod() {
        System.out.println("public方法：" + publicVar);
    }

    public static void main(String[] args) {
        AccessModifiersDemo obj = new AccessModifiersDemo();
        obj.defaultMethod();
    }
}